﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace CandooMwrf
{

    public class Result
    {
        static Dictionary<int, string> ErrorDesc = new Dictionary<int, string>();

        
        public Result()
        {
            InitErrorDesc();
        }

        private static void InitErrorDesc()
        {
            ErrorDesc.Add(-5, "卡数据校验失败"); 
            ErrorDesc.Add(-4, "认证失败"); 
            ErrorDesc.Add(-3, "数据解密失败");
            ErrorDesc.Add(-2, "数据加密失败");
            ErrorDesc.Add(-1, "未知");
            ErrorDesc.Add(0, "正确");
            ErrorDesc.Add(1, "无卡");
            ErrorDesc.Add(2, "CRC校验错");
            ErrorDesc.Add(3, "值溢出");
            ErrorDesc.Add(4, "未验证密码");
            ErrorDesc.Add(5, "奇偶校验错");
            ErrorDesc.Add(6, "通讯出错");
            ErrorDesc.Add(8, "错误的序列号");
            ErrorDesc.Add(10, "验证密码失败");
            ErrorDesc.Add(11, "接收的数据位错误");
            ErrorDesc.Add(12, "接收的数据字节错误");
            ErrorDesc.Add(14, "Transfer错误");
            ErrorDesc.Add(15, "写失败");
            ErrorDesc.Add(16, "加值失败");
            ErrorDesc.Add(17, "减值失败");
            ErrorDesc.Add(18, "读失败");
            ErrorDesc.Add(-0x10, "PC与读写器通讯错误");
            ErrorDesc.Add(-0x11, "通讯超时");
            ErrorDesc.Add(-0x20, "打开通信口失败");
            ErrorDesc.Add(-0x24, "串口已被占用");
            ErrorDesc.Add(-0x30, "地址格式错误");
            ErrorDesc.Add(-0x31, "该块数据不是值格式");
            ErrorDesc.Add(-0x32, "长度错误");
            ErrorDesc.Add(-0x40, "值操作失败");
            ErrorDesc.Add(-0x50, "卡中的值不够减");
        }

        public static string GetErrorDesc(int errorCode)
        {
            if (ErrorDesc.Count == 0)
                InitErrorDesc();
            string desc;
            if(ErrorDesc.TryGetValue(errorCode, out desc))
            {
                return desc;
            }
            return desc;
        }
    }
}
